package cn.edu.sgu.www.mhxysy.service.xingshi;

import cn.edu.sgu.www.mhxysy.dto.xingshi.XingshiDTO;
import cn.edu.sgu.www.mhxysy.dto.xingshi.XingshiInlayDTO;
import cn.edu.sgu.www.mhxysy.entity.xingshi.Xingshi;
import cn.edu.sgu.www.mhxysy.pager.xingshi.XingshiPager;
import cn.edu.sgu.www.mhxysy.vo.except.AttributeVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

/**
 * @author 沐雨橙风ιε
 * @version 1.0
 */
public interface XingshiService {

	/**
	 * 一键计算并修改星石评分
	 * @param xingshiId 星石ID
	 */
	void compute(String xingshiId);

	/**
	 * 星石镶嵌
	 * @param xingshiInlayDTO 星石信息
	 */
	void inlay(XingshiInlayDTO xingshiInlayDTO);

	/**
	 * 添加星石
	 * @param xingshiDTO 星石信息
	 */
	void insert(XingshiDTO xingshiDTO);

	/**
	 * 通过ID删除星石
	 * @param id 星石ID
	 */
	void deleteById(String id);

	/**
	 * 通过ID修改星石信息
	 * @param xingshiDTO 星石信息
	 */
	void updateById(XingshiDTO xingshiDTO);

	/**
	 * 通过星石ID查询星石属性
	 * @param xingshiId 星石ID
	 * @return AttributeVO
	 */
	AttributeVO selectAttribute(String xingshiId);

	/**
	 * 分页查询星石列表
	 * @param pager 分页参数
	 * @return Page<Xingshi>
	 */
	Page<Xingshi> selectByPage(XingshiPager pager);

	/**
	 * 通过宠物装备ID查询星石
	 * @param equipmentId 宠物装备ID
	 * @return Xingshi
	 */
    Xingshi selectByEquipmentId(String equipmentId);
}